// GraphicModelSpace.h: interface for the GraphicModelSpace class.
//
//////////////////////////////////////////////////////////////////////

#if !defined(AFX_GRAPHICMODELSPACE_H__DC825987_20C6_450F_AA2C_F517571884CE__INCLUDED_)
#define AFX_GRAPHICMODELSPACE_H__DC825987_20C6_450F_AA2C_F517571884CE__INCLUDED_

#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000

#include "Register.h"
#include "ObjectGenerator.h"
#include "ProjectSubObject.h"

class GMSGInfo;
class DllExport GraphicModelSpace :  public ProjectSubObject 
{
public:
		typedef RegisterTemplate<INT, GMSGInfo*> Register;
		typedef ObjectGenerator<Register> Generator;

		enum
		{
			eAUTOCADGMS
		};
public:
	GraphicModelSpace();
	virtual ~GraphicModelSpace();

protected:
	void Style(INT nStyle){
		m_nStyle = nStyle;
	}
public:
	INT Style(){
		return m_nStyle;
	}

	const CString& SpaceName() const {
		return m_strSpaceName;
	}

	void SpaceName(const CString& strSpaceName){
		m_strSpaceName = strSpaceName;
	}

	virtual BOOL Save() = 0;
	virtual BOOL Close() = 0;
	virtual void Update() = 0;

	static Register& GraphicModelSpaceGeneratorRegister();
private:
	CString m_strSpaceName;
	static Generator m_Generator;
	INT m_nStyle;
};

#endif // !defined(AFX_GRAPHICMODELSPACE_H__DC825987_20C6_450F_AA2C_F517571884CE__INCLUDED_)
